package com.ruoyi.fztz.clxhtb.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.fztz.clxhtb.domain.Clxhtb;
import com.ruoyi.fztz.clxhtb.domain.ClxhtbFj;

/**
 * 材料消耗填报Service接口
 *
 * @author huacai
 * @date 2024-11-20
 */
public interface IClxhtbService
{
    /**
     * 查询材料消耗填报
     *
     * @param clxhtbId 材料消耗填报主键
     * @return 材料消耗填报
     */
    public Clxhtb selectClxhtbByClxhtbId(String clxhtbId);


    /**
     * 获取材料消耗填报与实(试)验过程消耗的材料信息
     * @param clxhtbId
     * @return
     */
    Clxhtb selectClxhtbXhclByClxhtbId(String clxhtbId);

    /**
     * 获取实(试)验过程使用的设备信息
     * @param clxhtbId
     */
    Clxhtb selectClxhtbSySbByClxhtbId(String clxhtbId);

    /**
     * 查询材料消耗填报列表
     *
     * @param clxhtb 材料消耗填报
     * @return 材料消耗填报集合
     */
    public List<Clxhtb> selectClxhtbList(Clxhtb clxhtb);

    /**
     * 查询材料消耗填报列表(用于 研发活动证明(村料消耗)选择 组件)
     * @param clxhtb
     * @return
     */
    List<Clxhtb> selectClXhDxList(Clxhtb clxhtb);

    /**
     * 新增材料消耗填报
     *
     * @param clxhtb 材料消耗填报
     * @return 结果
     */
    public int insertClxhtb(Clxhtb clxhtb);

    /**
     * 批量新增材料消耗填报
     *
     * @param clxhtbs 材料消耗填报List
     * @return 结果
     */
    public int batchInsertClxhtb(List<Clxhtb> clxhtbs);

    /**
     * 修改材料消耗填报
     *
     * @param clxhtb 材料消耗填报
     * @return 结果
     */
    public int updateClxhtb(Clxhtb clxhtb);

    /**
     * 批量删除材料消耗填报
     *
     * @param clxhtbIds 需要删除的材料消耗填报主键集合
     * @return 结果
     */
    public int deleteClxhtbByClxhtbIds(String[] clxhtbIds);

    /**
     * 删除材料消耗填报信息
     *
     * @param clxhtbId 材料消耗填报主键
     * @return 结果
     */
    public int deleteClxhtbByClxhtbId(String clxhtbId);

    /**
     * 查询某个xmsbId在表中出现过几次
     * @param clxhtbId
     * @return
     */
    AjaxResult selectXmsbIdCountByClxhtb(String clxhtbId);

    /**
     * 新增附件
     * @param clxhtbFj
     * @return
     */
    int insertClxhtbFjByClxhtbId(ClxhtbFj clxhtbFj);

    /**
     * 根据ID查询附件列表
     * @param clxhtbFj
     * @return
     */
    List<ClxhtbFj> selectClxhtbFjList(ClxhtbFj clxhtbFj);

    /**
     * 删除材料消耗填报附件
     * @param fjIds
     * @return
     */
    int deleteClxhtbFjByFjIds(Integer[] fjIds);
}
